home *** CD-ROM | disk | FTP | other *** search
-
- ; INCLUDE MMacros
- ; INCLUDE diskfont/diskfont.i
-
- MAIN:
- MOVEQ #0,D5
- MOVE.L 4,A6 ;A6=EXEC
- MOVE.L D5,A1 ;CLEAR A1
- CALL FindTask
- MOVE.L D0,A5 ;A5=PTR TO OUR PROCESS
- TST.L pr_CLI(A5)
- BNE.S DOLIBS
- FROMWB:
- LEA pr_MsgPort(A5),A0
- CALL WaitPort
- LEA pr_MsgPort(A5),A0
- CALL GetMsg
- MOVE.L D0,D5
- DOLIBS:
- MOVEQ #0,D0
- LEA FONT(PC),A1
- CALL OpenLibrary
- MOVE.L D0,D6
- BEQ.S NOFONT
-
- LEA AVAILFONTS2(PC),A0
- MOVE.L A0,D0
- MOVE.L D6,A1
- MOVE.W #-36,A0
- CALL SetFunction
- LEA OLDAVAILFONTS,A5
- MOVE.L D0,(A5)
-
- MOVE.L #SIGBREAKF_CTRL_C|SIGBREAKF_CTRL_F,D0
- CALL Wait
-
- MOVE.L (A5),D0
- MOVE.L D6,A1
- MOVE.W #-36,A0
- CALL SetFunction
-
- MOVE.L D6,A1
- CALL CloseLibrary
- NOFONT:
- TST.L D5
- BEQ.S NOWB
- CALL Forbid
- MOVE.L D5,A1 ;A1= ->WBSTARTUP MESSAGE
- CALL ReplyMsg
- NOWB:
- MOVEQ #0,D0
- RTS
-
- CNOP 0,4 ;LONG ALIGNES OLDWAY
- NOFILE:
- MOVE.L A6,A1
- MOVE.L D6,A6
- CALL CloseLibrary
- NODOS:
- MOVE.L D5,D1
- MOVE.L D4,D0
- MOVE.L A4,A0
- MOVEM.L (SP)+,A4-A6/D2-D7
- ADDQ.B #AFF_DISK,D1
- OLDWAY:
- MOVE.L OLDAVAILFONTS,A1
- JMP (A1)
-
- CNOP 0,4
- AVAILFONTS2:
- CMP.L #7,D1 ;6 14
- BGT.S OLDWAY
- BCLR #AFB_DISK,D1 ;4 10
- BEQ.S OLDWAY
-
- MOVEM.L A4-A6/D2-D7,-(SP)
- MOVE.L D1,D5 ; flags
- MOVE.L D0,D4 ; bufBytes
- MOVE.L A0,A4 ; buffer
- MOVE.L A6,A5 ; DiskfontBase
-
- MOVE.L 4,A6
-
- MOVEQ #0,D0
- LEA DOS(PC),A1
- CALL OpenLibrary
- MOVE.L D0,D6
- BEQ.S NODOS
- EXG A6,D6
-
- LEA FILENAME(PC),A1
- MOVE.L A1,D1
- MOVE.L #MODE_OLDFILE,D2
- CALL Open
- MOVE.L D0,D7
- BEQ.S NOFILE
-
- LEA -4(SP),SP
- MOVEQ #4,D3
- MOVE.L SP,D2
- MOVE.L D7,D1
- CALL Read
-
- MOVE.L (SP)+,D3
- BTST #AFB_MEMORY,D5
- BNE.S DOMEMFONTS
- SUB.L D3,D4
- BLT.S BUFFERTOOSMALL
- MOVE.L A4,D2
- MOVE.L D7,D1
- CALL Read
-
- MOVE.W (A4)+,D1 ;NUMBER OF AvailFonts
- BRA.S SKIP1STLOOP
- LOOP:
- ADDQ.L #af_Attr+ta_Name,A4
- ADD.L D2,(A4)+
- ADDQ.L #ta_SIZEOF-ta_YSize,A4
- SKIP1STLOOP:
- DBRA.S D1,LOOP
-
- MOVE.L D7,D1
- CALL Close
-
- MOVE.L A6,A1
- MOVE.L D6,A6
- CALL CloseLibrary
-
- MOVEM.L (SP)+,A4-A6/D2-D7
- MOVEQ #0,D0
- RTS
-
- BUFFERTOOSMALL2:
- MOVE.L A5,A6
- BUFFERTOOSMALL:
- MOVE.L D7,D1
- CALL Close
-
- MOVE.L A6,A1
- MOVE.L D6,A6
- CALL CloseLibrary
-
- NEG.L D4
- MOVE.L D4,D0
- MOVEM.L (SP)+,A4-A6/D2-D7
- RTS
-
- CNOP 0,4
- DOMEMFONTS:
- EXG A6,A5
- SUBQ.L #2,D3
- TRYAGAIN:
- MOVE.L D5,D1
- MOVEQ #0,D0
- MOVE.L SP,A0
- MOVE.L OLDAVAILFONTS,A1
- JSR (A1)
- MOVE.L D0,D1
- ADD.L D3,D1
- SUB.L D1,D4
- BLT.S BUFFERTOOSMALL2
- ADD.L D1,D4
- MOVE.L D5,D1
- MOVE.L A4,A0
- ADD.L D3,A0
- MOVE.L OLDAVAILFONTS,A1
- JSR (A1)
- TST.L D0
- BNE.S TRYAGAIN
- MOVE.L A5,A6
- MOVE.L A4,A5
- MOVE.L A4,A0
- ADD.L D3,A0
- MOVE.W (A0)+,D1
- MOVE.W D1,(A4)+
- BRA.S SKIP1STLOOP2
- CNOP 0,4
- MOVEAF:
- MOVE.L (A0)+,(A4)+
- MOVE.L (A0)+,(A4)+
- MOVE.W (A0)+,(A4)+
- SKIP1STLOOP2:
- DBRA.S D1,MOVEAF
-
- MOVE.L D3,D5
- MOVEQ #2,D3
- MOVE.L A4,D2
- MOVE.L D7,D1
- CALL Read
-
- MOVE.W (A4),D4
- ADD.W D4,(A5)
-
- MOVE.L D5,D3
- MOVE.L A4,D2
- MOVE.L D7,D1
- CALL Read
-
- MOVE.L A4,D2
- MOVE.W D4,D1
- SUBQ.L #2,D2
- BRA SKIP1STLOOP
-
- CNOP 0,4
- FILENAME:
- DC.B 'FONTS:_FontList',0
- CNOP 0,4
- DOS:
- DC.B 'dos.library',0
- CNOP 0,4
- FONT:
- DC.B 'diskfont.library',0
- VERSION:
- DC.B '$VER: FastFontList 1.1 (23.03.99)',0
-
- SECTION bss,BSS
- OLDAVAILFONTS:
- DS.L 1
-